[INFO] cloning repository https://github.com/rghisi/rosx
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rghisi/rosx" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frghisi%2Frosx", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frghisi%2Frosx'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a1f6ee3f96f77a78aa478398c9349b1c500b2163
[INFO] fixing rghisi/rosx against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frghisi%2Frosx" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/rghisi/rosx
[INFO] finished tweaking git repo https://github.com/rghisi/rosx
[INFO] tweaked toml for git repo https://github.com/rghisi/rosx written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rghisi/rosx on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rghisi/rosx already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pic8259 v0.11.0
[INFO] [stderr]   Downloaded bootloader_api v0.11.15
[INFO] [stderr]   Downloaded x86_64 v0.15.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73
[INFO] running `Command { std: "docker" "start" "733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]     Checking collections v0.1.0 (/opt/rustwide/workdir/collections)
[INFO] [stderr]    Compiling bootloader_api v0.11.15
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]    Compiling rosx-x86 v0.1.0 (/opt/rustwide/workdir/arch/x86_32)
[INFO] [stderr]     Checking lock_api v0.4.13
[INFO] [stderr]     Checking system v0.1.0 (/opt/rustwide/workdir/system)
[INFO] [stderr]     Checking x86_64 v0.15.2
[INFO] [stderr]     Checking usrlib v0.1.0 (/opt/rustwide/workdir/usrlib)
[INFO] [stderr]     Checking kernel v0.1.0 (/opt/rustwide/workdir/kernel)
[INFO] [stderr]     Checking spin v0.10.0
[INFO] [stdout] warning: unused import: `collections::generational_arena::Handle`
[INFO] [stdout]  --> kernel/src/scheduler/fifo_strategy.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use collections::generational_arena::Handle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::generational_arena::Handle`
[INFO] [stdout]  --> kernel/src/scheduler/mlfq_strategy.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use collections::generational_arena::Handle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kernel_services::services`
[INFO] [stdout]  --> kernel/src/scheduler/timer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::kernel_services::services;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking test_suite v0.1.0 (/opt/rustwide/workdir/apps/test_suite)
[INFO] [stderr]     Checking dummy v0.1.0 (/opt/rustwide/workdir/apps/dummy)
[INFO] [stdout] warning: unused imports: `KernelOutput` and `setup_default_output`
[INFO] [stdout]  --> kernel/src/kernel.rs:2:29
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::default_output::{KernelOutput, setup_default_output};
[INFO] [stdout]   |                             ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kprintln`
[INFO] [stdout]  --> kernel/src/kernel.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::kprintln;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MAX_MEMORY_BLOCKS`
[INFO] [stdout]    --> kernel/src/memory/memory_manager.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |     use crate::memory::{MemoryBlock, MAX_MEMORY_BLOCKS};
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kernel_services::services`
[INFO] [stdout]  --> kernel/src/scheduler/timer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::kernel_services::services;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GlobalAlloc` and `Layout`
[INFO] [stdout]  --> kernel/src/syscall.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::alloc::{GlobalAlloc, Layout};
[INFO] [stdout]   |                   ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> kernel/src/syscall.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kernel::kernel`
[INFO] [stdout]  --> kernel/src/syscall.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kernel::kernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kernel_services::services`
[INFO] [stdout]  --> kernel/src/syscall.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::kernel_services::services;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::default_output::print`
[INFO] [stdout]  --> kernel/src/syscall.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::default_output::print;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `system::syscall_numbers::SyscallNum`
[INFO] [stdout]  --> kernel/src/syscall.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use system::syscall_numbers::SyscallNum;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::generational_arena::HalfSize`
[INFO] [stdout]  --> kernel/src/syscall.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use collections::generational_arena::HalfSize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `system::future::FutureHandle`
[INFO] [stdout]  --> kernel/src/syscall.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use system::future::FutureHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpcBindingHandle`, `IpcConnectionHandle`, and `IpcMessage`
[INFO] [stdout]  --> kernel/src/syscall.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use system::ipc::{IpcMessage, IpcConnectionHandle, IpcBindingHandle};
[INFO] [stdout]   |                   ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `system::future::FutureResult`
[INFO] [stdout]   --> kernel/src/syscall.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use system::future::FutureResult;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `new_elf_task` and `new_entrypoint_task`
[INFO] [stdout]   --> kernel/src/syscall.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::task::{new_elf_task, new_entrypoint_task};
[INFO] [stdout]    |                   ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]  --> apps/test_suite/src/app.rs:8:61
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Syscall::wait_future(Syscall::exec(allocation_test::run as usize));
[INFO] [stdout]   |                                                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Syscall::wait_future(Syscall::exec(allocation_test::run as *const () as usize));
[INFO] [stdout]   |                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]  --> apps/test_suite/src/app.rs:9:81
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Syscall::wait_future(Syscall::exec(context_switching::worker_context_switch as usize));
[INFO] [stdout]   |                                                                                 ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Syscall::wait_future(Syscall::exec(context_switching::worker_context_switch as *const () as usize));
[INFO] [stdout]   |                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:10:58
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Syscall::wait_future(Syscall::exec(worker_mixed_load as usize));
[INFO] [stdout]    |                                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Syscall::wait_future(Syscall::exec(worker_mixed_load as *const () as usize));
[INFO] [stdout]    |                                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:18:50
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mem = Syscall::exec(allocation_test::run as usize);
[INFO] [stdout]    |                                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mem = Syscall::exec(allocation_test::run as *const () as usize);
[INFO] [stdout]    |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:19:70
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let ctx = Syscall::exec(context_switching::worker_context_switch as usize);
[INFO] [stdout]    |                                                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let ctx = Syscall::exec(context_switching::worker_context_switch as *const () as usize);
[INFO] [stdout]    |                                                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]  --> apps/test_suite/src/app.rs:8:61
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Syscall::wait_future(Syscall::exec(allocation_test::run as usize));
[INFO] [stdout]   |                                                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Syscall::wait_future(Syscall::exec(allocation_test::run as *const () as usize));
[INFO] [stdout]   |                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]  --> apps/test_suite/src/app.rs:9:81
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Syscall::wait_future(Syscall::exec(context_switching::worker_context_switch as usize));
[INFO] [stdout]   |                                                                                 ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Syscall::wait_future(Syscall::exec(context_switching::worker_context_switch as *const () as usize));
[INFO] [stdout]   |                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:10:58
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Syscall::wait_future(Syscall::exec(worker_mixed_load as usize));
[INFO] [stdout]    |                                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Syscall::wait_future(Syscall::exec(worker_mixed_load as *const () as usize));
[INFO] [stdout]    |                                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:18:50
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mem = Syscall::exec(allocation_test::run as usize);
[INFO] [stdout]    |                                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mem = Syscall::exec(allocation_test::run as *const () as usize);
[INFO] [stdout]    |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:19:70
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let ctx = Syscall::exec(context_switching::worker_context_switch as usize);
[INFO] [stdout]    |                                                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let ctx = Syscall::exec(context_switching::worker_context_switch as *const () as usize);
[INFO] [stdout]    |                                                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shell v0.1.0 (/opt/rustwide/workdir/apps/shell)
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]  --> apps/test_suite/src/app.rs:8:61
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Syscall::wait_future(Syscall::exec(allocation_test::run as usize));
[INFO] [stdout]   |                                                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Syscall::wait_future(Syscall::exec(allocation_test::run as *const () as usize));
[INFO] [stdout]   |                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]  --> apps/test_suite/src/app.rs:9:81
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Syscall::wait_future(Syscall::exec(context_switching::worker_context_switch as usize));
[INFO] [stdout]   |                                                                                 ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Syscall::wait_future(Syscall::exec(context_switching::worker_context_switch as *const () as usize));
[INFO] [stdout]   |                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:10:58
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Syscall::wait_future(Syscall::exec(worker_mixed_load as usize));
[INFO] [stdout]    |                                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Syscall::wait_future(Syscall::exec(worker_mixed_load as *const () as usize));
[INFO] [stdout]    |                                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:18:50
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mem = Syscall::exec(allocation_test::run as usize);
[INFO] [stdout]    |                                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mem = Syscall::exec(allocation_test::run as *const () as usize);
[INFO] [stdout]    |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> apps/test_suite/src/app.rs:19:70
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let ctx = Syscall::exec(context_switching::worker_context_switch as usize);
[INFO] [stdout]    |                                                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let ctx = Syscall::exec(context_switching::worker_context_switch as *const () as usize);
[INFO] [stdout]    |                                                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/hello_elf/target/rosx-user/release/hello_elf`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | static PI_ELF: &[u8] = include_bytes!("../../../apps/hello_elf/target/rosx-user/release/hello_elf");
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/snake/target/rosx-user/release/snake`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | static SNAKE_ELF: &[u8] = include_bytes!("../../../apps/snake/target/rosx-user/release/snake");
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/tetris/target/rosx-user/release/tetris`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | static TETRIS_ELF: &[u8] = include_bytes!("../../../apps/tetris/target/rosx-user/release/tetris");
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/conway/target/rosx-user/release/conway`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 | static CONWAY_ELF: &[u8] = include_bytes!("../../../apps/conway/target/rosx-user/release/conway");
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:76:30
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let block_size = (*current).size;
[INFO] [stdout]    |                              ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub unsafe fn allocate(&mut self, layout: Layout, owner: BlockOwner) -> Result<*mut u8, AllocError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |                     (*split).size = remaining;
[INFO] [stdout]    |                     ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     (*split).next = (*current).next;
[INFO] [stdout]    |                     ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:84:37
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     (*split).next = (*current).next;
[INFO] [stdout]    |                                     ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |                     *prev_next = split;
[INFO] [stdout]    |                     ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     *prev_next = (*current).next;
[INFO] [stdout]    |                     ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:88:34
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     *prev_next = (*current).next;
[INFO] [stdout]    |                                  ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 (*header).size = used_size;
[INFO] [stdout]    |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 (*header).owner = owner;
[INFO] [stdout]    |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 (*header).next = self.alloc_head;
[INFO] [stdout]    |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:98:30
[INFO] [stdout]    |
[INFO] [stdout] 98 |             prev_next = &mut (*current).next;
[INFO] [stdout]    |                              ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |             current = (*current).next;
[INFO] [stdout]    |                       ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:107:26
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let block_size = (*header).size;
[INFO] [stdout]     |                          ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub unsafe fn deallocate(&mut self, ptr: *mut u8) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:113:23
[INFO] [stdout]     |
[INFO] [stdout] 113 |             current = (*current).next;
[INFO] [stdout]     |                       ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:116:31
[INFO] [stdout]     |
[INFO] [stdout] 116 |             self.alloc_head = (*header).next;
[INFO] [stdout]     |                               ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             (*prev).next = (*header).next;
[INFO] [stdout]     |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:118:28
[INFO] [stdout]     |
[INFO] [stdout] 118 |             (*prev).next = (*header).next;
[INFO] [stdout]     |                            ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::free_list_allocator::FreeListAllocator::insert_free_block` is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         self.insert_free_block(start, block_size);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let next = (*current).next;
[INFO] [stdout]     |                        ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub unsafe fn deallocate_by_owner(&mut self, task_id: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:130:16
[INFO] [stdout]     |
[INFO] [stdout] 130 |             if (*current).owner == target {
[INFO] [stdout]     |                ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:131:17
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 *prev_next = next;
[INFO] [stdout]     |                 ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:133:34
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 let block_size = (*current).size;
[INFO] [stdout]     |                                  ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::free_list_allocator::FreeListAllocator::insert_free_block` is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 self.insert_free_block(start, block_size);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:136:34
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 prev_next = &mut (*current).next;
[INFO] [stdout]     |                                  ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         (*block).size = block_size;
[INFO] [stdout]     |         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     unsafe fn insert_free_block(&mut self, start: usize, block_size: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |             current = (*current).next;
[INFO] [stdout]     |                       ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         (*block).next = current;
[INFO] [stdout]     |         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             (*prev).next = block;
[INFO] [stdout]     |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         if !(*block).next.is_null() {
[INFO] [stdout]     |             ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:161:37
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let block_end = start + (*block).size;
[INFO] [stdout]     |                                     ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:162:24
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let next = (*block).next;
[INFO] [stdout]     |                        ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:164:17
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 (*block).size += (*next).size;
[INFO] [stdout]     |                 ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:164:34
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 (*block).size += (*next).size;
[INFO] [stdout]     |                                  ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 (*block).next = (*next).next;
[INFO] [stdout]     |                 ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:165:33
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 (*block).next = (*next).next;
[INFO] [stdout]     |                                 ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:170:44
[INFO] [stdout]     |
[INFO] [stdout] 170 |             let prev_end = prev as usize + (*prev).size;
[INFO] [stdout]     |                                            ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 (*prev).size += (*block).size;
[INFO] [stdout]     |                 ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:172:33
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 (*prev).size += (*block).size;
[INFO] [stdout]     |                                 ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:173:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 (*prev).next = (*block).next;
[INFO] [stdout]     |                 ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 (*prev).next = (*block).next;
[INFO] [stdout]     |                                ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> kernel/src/syscall.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |             let result = services().ipc_manager.borrow_mut().disconnect(connection_handle);
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BlockOwner` is more private than the item `FreeListAllocator::allocate`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub unsafe fn allocate(&mut self, layout: Layout, owner: BlockOwner) -> Result<*mut u8, AllocError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `FreeListAllocator::allocate` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `BlockOwner` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) enum BlockOwner {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `free_list_allocator::AllocError` is more private than the item `FreeListAllocator::allocate`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub unsafe fn allocate(&mut self, layout: Layout, owner: BlockOwner) -> Result<*mut u8, AllocError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `FreeListAllocator::allocate` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `free_list_allocator::AllocError` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) enum AllocError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskFuture` is never constructed
[INFO] [stdout]   --> kernel/src/future.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) struct TaskFuture {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_completed` is never used
[INFO] [stdout]   --> kernel/src/future.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl TaskFuture {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 82 |     pub(crate) fn is_completed(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `service` is never read
[INFO] [stdout]   --> kernel/src/ipc/ipc_manager.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct IpcServerBinding {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] 10 |     pub service: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> kernel/src/ipc/mailbox.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Mailbox {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> kernel/src/kernel.rs:42:75
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let scheduler_task = Task::new("[K] Main Thread", main_thread_run as usize, 0);
[INFO] [stdout]    |                                                                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let scheduler_task = Task::new("[K] Main Thread", main_thread_run as *const () as usize, 0);
[INFO] [stdout]    |                                                                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:147:38
[INFO] [stdout]     |
[INFO] [stdout] 147 |         Task::new(name, task_wrapper as usize, job as usize)
[INFO] [stdout]     |                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 147 |         Task::new(name, task_wrapper as *const () as usize, job as usize)
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Task::new("[K] Idle", idle_entry as usize, cpu_ptr)
[INFO] [stdout]     |                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Task::new("[K] Idle", idle_entry as *const () as usize, cpu_ptr)
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:165:35
[INFO] [stdout]     |
[INFO] [stdout] 165 |     Task::new("EPT", task_wrapper as usize, entrypoint)
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 165 |     Task::new("EPT", task_wrapper as *const () as usize, entrypoint)
[INFO] [stdout]     |                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:170:39
[INFO] [stdout]     |
[INFO] [stdout] 170 |     Task::new("ELF", elf_task_wrapper as usize, elf_ptr)
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 170 |     Task::new("ELF", elf_task_wrapper as *const () as usize, elf_ptr)
[INFO] [stdout]     |                                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> apps/shell/src/shell.rs:157:43
[INFO] [stdout]     |
[INFO] [stdout] 157 |             println!("Connection failed");;
[INFO] [stdout]     |                                           ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/hello_elf/target/rosx-user/release/hello_elf`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | static PI_ELF: &[u8] = include_bytes!("../../../apps/hello_elf/target/rosx-user/release/hello_elf");
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/snake/target/rosx-user/release/snake`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | static SNAKE_ELF: &[u8] = include_bytes!("../../../apps/snake/target/rosx-user/release/snake");
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/tetris/target/rosx-user/release/tetris`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | static TETRIS_ELF: &[u8] = include_bytes!("../../../apps/tetris/target/rosx-user/release/tetris");
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't read `apps/shell/src/../../../apps/conway/target/rosx-user/release/conway`: No such file or directory (os error 2)
[INFO] [stdout]   --> apps/shell/src/shell.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 | static CONWAY_ELF: &[u8] = include_bytes!("../../../apps/conway/target/rosx-user/release/conway");
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> apps/shell/src/shell.rs:157:43
[INFO] [stdout]     |
[INFO] [stdout] 157 |             println!("Connection failed");;
[INFO] [stdout]     |                                           ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> apps/shell/src/shell.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     for i in 1..260 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> apps/shell/src/shell.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |             for i in 1..2 {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> apps/shell/src/shell.rs:137:24
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     Ok(result) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> apps/shell/src/shell.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     for i in 1..260 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> apps/shell/src/shell.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |             for i in 1..2 {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> apps/shell/src/shell.rs:137:24
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     Ok(result) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `shell` (lib) due to 4 previous errors; 4 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `shell` (lib test) due to 4 previous errors; 4 warnings emitted
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> kernel/src/ipc/mailbox_manager.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let mut registry = services().future_registry.borrow_mut();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:76:30
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let block_size = (*current).size;
[INFO] [stdout]    |                              ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub unsafe fn allocate(&mut self, layout: Layout, owner: BlockOwner) -> Result<*mut u8, AllocError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |                     (*split).size = remaining;
[INFO] [stdout]    |                     ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     (*split).next = (*current).next;
[INFO] [stdout]    |                     ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:84:37
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     (*split).next = (*current).next;
[INFO] [stdout]    |                                     ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |                     *prev_next = split;
[INFO] [stdout]    |                     ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     *prev_next = (*current).next;
[INFO] [stdout]    |                     ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:88:34
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     *prev_next = (*current).next;
[INFO] [stdout]    |                                  ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 (*header).size = used_size;
[INFO] [stdout]    |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 (*header).owner = owner;
[INFO] [stdout]    |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 (*header).next = self.alloc_head;
[INFO] [stdout]    |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:98:30
[INFO] [stdout]    |
[INFO] [stdout] 98 |             prev_next = &mut (*current).next;
[INFO] [stdout]    |                              ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |             current = (*current).next;
[INFO] [stdout]    |                       ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:107:26
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let block_size = (*header).size;
[INFO] [stdout]     |                          ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub unsafe fn deallocate(&mut self, ptr: *mut u8) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:113:23
[INFO] [stdout]     |
[INFO] [stdout] 113 |             current = (*current).next;
[INFO] [stdout]     |                       ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:116:31
[INFO] [stdout]     |
[INFO] [stdout] 116 |             self.alloc_head = (*header).next;
[INFO] [stdout]     |                               ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             (*prev).next = (*header).next;
[INFO] [stdout]     |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:118:28
[INFO] [stdout]     |
[INFO] [stdout] 118 |             (*prev).next = (*header).next;
[INFO] [stdout]     |                            ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::free_list_allocator::FreeListAllocator::insert_free_block` is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         self.insert_free_block(start, block_size);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let next = (*current).next;
[INFO] [stdout]     |                        ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub unsafe fn deallocate_by_owner(&mut self, task_id: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:130:16
[INFO] [stdout]     |
[INFO] [stdout] 130 |             if (*current).owner == target {
[INFO] [stdout]     |                ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:131:17
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 *prev_next = next;
[INFO] [stdout]     |                 ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:133:34
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 let block_size = (*current).size;
[INFO] [stdout]     |                                  ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::free_list_allocator::FreeListAllocator::insert_free_block` is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 self.insert_free_block(start, block_size);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:136:34
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 prev_next = &mut (*current).next;
[INFO] [stdout]     |                                  ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         (*block).size = block_size;
[INFO] [stdout]     |         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     unsafe fn insert_free_block(&mut self, start: usize, block_size: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |             current = (*current).next;
[INFO] [stdout]     |                       ^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         (*block).next = current;
[INFO] [stdout]     |         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             (*prev).next = block;
[INFO] [stdout]     |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         if !(*block).next.is_null() {
[INFO] [stdout]     |             ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:161:37
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let block_end = start + (*block).size;
[INFO] [stdout]     |                                     ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:162:24
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let next = (*block).next;
[INFO] [stdout]     |                        ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:164:17
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 (*block).size += (*next).size;
[INFO] [stdout]     |                 ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:164:34
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 (*block).size += (*next).size;
[INFO] [stdout]     |                                  ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 (*block).next = (*next).next;
[INFO] [stdout]     |                 ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:165:33
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 (*block).next = (*next).next;
[INFO] [stdout]     |                                 ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:170:44
[INFO] [stdout]     |
[INFO] [stdout] 170 |             let prev_end = prev as usize + (*prev).size;
[INFO] [stdout]     |                                            ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 (*prev).size += (*block).size;
[INFO] [stdout]     |                 ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:172:33
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 (*prev).size += (*block).size;
[INFO] [stdout]     |                                 ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:173:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 (*prev).next = (*block).next;
[INFO] [stdout]     |                 ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> kernel/src/memory/free_list_allocator.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 (*prev).next = (*block).next;
[INFO] [stdout]     |                                ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `free_list_allocator::BlockOwner` is more private than the item `free_list_allocator::FreeListAllocator::allocate`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub unsafe fn allocate(&mut self, layout: Layout, owner: BlockOwner) -> Result<*mut u8, AllocError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `free_list_allocator::FreeListAllocator::allocate` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `free_list_allocator::BlockOwner` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) enum BlockOwner {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `free_list_allocator::AllocError` is more private than the item `free_list_allocator::FreeListAllocator::allocate`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub unsafe fn allocate(&mut self, layout: Layout, owner: BlockOwner) -> Result<*mut u8, AllocError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `free_list_allocator::FreeListAllocator::allocate` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `free_list_allocator::AllocError` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> kernel/src/memory/free_list_allocator.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) enum AllocError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_default_output` is never used
[INFO] [stdout]   --> kernel/src/default_output.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) fn setup_default_output(output: &'static dyn KernelOutput) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskFuture` is never constructed
[INFO] [stdout]   --> kernel/src/future.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) struct TaskFuture {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_completed` is never used
[INFO] [stdout]   --> kernel/src/future.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl TaskFuture {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 82 |     pub(crate) fn is_completed(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `service` and `mailbox_handle` are never read
[INFO] [stdout]   --> kernel/src/ipc/ipc_manager.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct IpcServerBinding {
[INFO] [stdout]    |        ---------------- fields in this struct
[INFO] [stdout] 10 |     pub service: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 11 |     pub mailbox_handle: MailboxHandle
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> kernel/src/ipc/ipc_manager.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl IpcServerBinding {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 15 |
[INFO] [stdout] 16 |     pub(crate) fn new(service: String, mailbox_handle: MailboxHandle) -> IpcServerBinding {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `server_mailbox` and `client_mailbox` are never read
[INFO] [stdout]   --> kernel/src/ipc/ipc_manager.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct IpcConnection {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 27 |     server_mailbox: MailboxHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     client_mailbox: MailboxHandle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bindings`, `mailbox_manager`, `connections`, and `registry` are never read
[INFO] [stdout]   --> kernel/src/ipc/ipc_manager.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) struct IpcManager {
[INFO] [stdout]    |                   ---------- fields in this struct
[INFO] [stdout] 32 |     bindings: GenerationalArena<IpcServerBinding, 256>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 33 |     mailbox_manager: MailboxManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     connections: GenerationalArena<IpcConnection, 256>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 35 |     registry: BTreeMap<String, IpcBindingHandle>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> kernel/src/ipc/ipc_manager.rs:49:19
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl IpcManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub(crate) fn bind_service(&mut self, service: &str) -> Result<IpcBindingHandle, IpcBindingError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub(crate) fn connect(&mut self, service: &str) -> Result<IpcConnectionHandle, IpcConnectionError> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub(crate) fn disconnect(&mut self, connection_handle: IpcConnectionHandle) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub(crate) fn send_to_server(&mut self, message: IpcMessage) -> Result<(), IpcSendError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub(crate) fn send_to_client(&mut self, message: IpcMessage) -> Result<(), IpcSendError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub(crate) fn receive_from_all_clients_async(&mut self, server_binding_handle: IpcBindingHandle) -> FutureHandle {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub(crate) fn receive_from_server_async(&mut self, connection_handle: IpcConnectionHandle) -> FutureHandle {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> kernel/src/ipc/mailbox.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Mailbox {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ipc_manager` and `memory_manager` are never read
[INFO] [stdout]   --> kernel/src/kernel_services.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct KernelServices {
[INFO] [stdout]    |                   -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) ipc_manager: KernelCell<IpcManager>,
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub(crate) memory_manager: &'static MemoryManager,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_future_handle` is never used
[INFO] [stdout]   --> kernel/src/keyboard.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn register_future_handle(handle: FutureHandle) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pop_key` is never used
[INFO] [stdout]   --> kernel/src/keyboard.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn pop_key() -> Option<char> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyboardFuture` is never constructed
[INFO] [stdout]   --> kernel/src/keyboard.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct KeyboardFuture {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> kernel/src/keyboard.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl KeyboardFuture {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 37 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> kernel/src/kernel.rs:42:75
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let scheduler_task = Task::new("[K] Main Thread", main_thread_run as usize, 0);
[INFO] [stdout]    |                                                                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let scheduler_task = Task::new("[K] Main Thread", main_thread_run as *const () as usize, 0);
[INFO] [stdout]    |                                                                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:147:38
[INFO] [stdout]     |
[INFO] [stdout] 147 |         Task::new(name, task_wrapper as usize, job as usize)
[INFO] [stdout]     |                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 147 |         Task::new(name, task_wrapper as *const () as usize, job as usize)
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Task::new("[K] Idle", idle_entry as usize, cpu_ptr)
[INFO] [stdout]     |                                      ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Task::new("[K] Idle", idle_entry as *const () as usize, cpu_ptr)
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:165:35
[INFO] [stdout]     |
[INFO] [stdout] 165 |     Task::new("EPT", task_wrapper as usize, entrypoint)
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 165 |     Task::new("EPT", task_wrapper as *const () as usize, entrypoint)
[INFO] [stdout]     |                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> kernel/src/task.rs:170:39
[INFO] [stdout]     |
[INFO] [stdout] 170 |     Task::new("ELF", elf_task_wrapper as usize, elf_ptr)
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 170 |     Task::new("ELF", elf_task_wrapper as *const () as usize, elf_ptr)
[INFO] [stdout]     |                                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73", kill_on_drop: false }`
[INFO] [stdout] 733da7607de176b9a4a21049f8ee7cdabfb68bfedb2f1977461011b8abdc2a73
